昨天已經完成匯出/匯入,今天要挑戰的是另一個真實世界的痛點 —— 沒有網路時也能寫日記。
畢竟日記是隨時隨地的靈感記錄,不能因為斷網就卡住。
所以今天的目標是把日記系統升級成 PWA 網頁版離線模式,即使沒有網路也能使用,恢復連線後再自動同步。
幫我在 React (Firestore + Auth) 的日記網頁加入「PWA 離線模式」
=== 功能需求 ===
1) PWA 設定
- 新增 manifest.json(app 名稱、icon、display: standalone)
- 註冊 Service Worker (sw.js),快取 HTML、CSS、JS
2) 離線寫入
- 斷網時,日記存到 IndexedDB
- 格式:{ id, date, content, sentiment, isSynced: false }
3) 上線同步
- 監聽 `window.addEventListener('online', ...)`
- 從 IndexedDB 取出 isSynced=false 的資料 → 寫入 Firestore
- 成功後更新 isSynced=true
4) UI
- 離線時顯示「目前為離線模式」
- 上線同步時顯示「同步中 → 完成」
Day 21 要邁向真正上線的里程碑 —— 部署
在完成了匯出/匯入與離線模式後,是時候把專案丟到雲端,讓任何地方都能開啟並使用